package com.fowo.api.model.requisition;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fowo.api.common.validator.*;
import io.swagger.v3.oas.annotations.media.Schema;
import javax.validation.constraints.*;
import lombok.Getter;
import lombok.Setter;

/**
 * 调拨单 预览导入辅助模型(全字段为文本类型)
 * @author yl_ls
 */
@Getter
@Setter
public class RequisitionImportPo {

  /** 调拨单号 */
  @ExcelProperty("调拨单号")
  private String rqtSn;

  /** 出库仓库 */
  @ExcelProperty("*出库仓库")
  @NotBlank(message = "出库仓库不能为空")
  @Size(max = 50, message = "出库仓库长度不能超过50")
  private String widName;

  @ExcelIgnore
  @Schema(title = "*出库仓库")
  private String wid;

  /** 入库仓库 */
  @ExcelProperty("*入库仓库")
  @NotBlank(message = "入库仓库不能为空")
  @Size(max = 50, message = "入库仓库长度不能超过50")
  private String toWidName;

  @ExcelIgnore
  @Schema(title = "*入库仓库")
  private String toWid;

  /** 单据状态 */
  @ExcelProperty("单据状态")
  @EnumsString(
    value = { "待配货", "待调拨", "待收货", "已完成", "已撤销", "待审批" },
    message = "单据状态只能是“待配货”, “待调拨”, “待收货”, “已完成”, “已撤销”, “待审批”中的一个"
  )
  private String status;

  /** 运费 */
  @ExcelProperty("运费")
  @DecimalString(message = "运费小数格式不正确", label = "运费")
  private String freightFee;

  /** 其他运费 */
  @ExcelProperty("其他运费")
  @DecimalString(message = "其他运费小数格式不正确", label = "其他运费")
  private String otherFee;

  /** 费用分配方式 */
  @ExcelProperty("*费用分配方式")
  @NotBlank(message = "费用分配方式不能为空")
  @EnumsString(
    value = { "不分配", "按SKU数量", "按实重", "按体积", " 自定义" },
    message = "费用分配方式只能是“不分配”, “按SKU数量”, “按实重”, “按体积”, “ 自定义”中的一个"
  )
  private String feePartType;

  /** 调拨类型 */
  @ExcelProperty("*调拨类型")
  @NotBlank(message = "调拨类型不能为空")
  @EnumsString(
    value = { "简易调拨", "完整调拨" },
    message = "调拨类型只能是“简易调拨”, “完整调拨”中的一个"
  )
  private String type;

  /** 预计到货时间 */
  @ExcelProperty("预计到货时间")
  @DateTimeString(message = "预计到货时间不是有效的时间日期格式")
  private String arrivalTime;

  /** 备注 */
  @ExcelProperty("备注")
  @Size(max = 50, message = "备注长度不能超过50")
  private String remark;
}
